#pragma once

#include "ScriptCompiler/AST/ASTNode.h"

class CScriptToken;
class CSentenceBlockNode;
class CExpressionNode;

class CGetAccessorNode : public CASTNode
{

public:
    CGetAccessorNode(std::weak_ptr<CScriptFileContext> InFile)
        : CASTNode( InFile,EASTNodeType::GetAccessor)
    {
    }

    std::shared_ptr<CScriptToken> GetKeyword;
    
    TOptional<std::shared_ptr<CSentenceBlockNode>> Content;

    TOptional<std::shared_ptr<CSentenceBlockNode>> LambdaContent;

    virtual void DebugPrint(int32_t InDepth) override;

    virtual std::shared_ptr<CScriptToken> GetFirstToken() override { return GetKeyword; }
};